<?php
/**
 * 蜘蛛监控许可证管理 - 独立访问入口
 * 直接访问此文件进行许可证管理
 * 访问地址：https://zibovip.top/dingyue/admin-access.php
 */

// 关闭错误显示，避免路径泄露
@ini_set('display_errors', 0);

// 定义WordPress环境
if (!defined('ABSPATH')) {
    // 获取当前文件的绝对路径
    $current_dir = dirname(__FILE__);
    
    // 计算WordPress根目录（向上查找5级）
    $wp_root = $current_dir;
    for ($i = 0; $i < 5; $i++) {
        $wp_root = dirname($wp_root);
        if (file_exists($wp_root . '/wp-load.php')) {
            define('ABSPATH', $wp_root . '/');
            break;
        }
    }
    
    if (!defined('ABSPATH')) {
        // 如果找不到，尝试使用相对路径
        $possible_paths = [
            '../../../../wp-load.php',
            '../../../wp-load.php',
            '../../wp-load.php',
            '../wp-load.php',
            $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php'
        ];
        
        foreach ($possible_paths as $path) {
            if (file_exists($path)) {
                require_once($path);
                break;
            }
        }
    } else {
        require_once(ABSPATH . 'wp-load.php');
    }
}

// 确保WordPress已加载
if (!function_exists('get_option')) {
    die('WordPress加载失败，请检查服务器配置');
}

// 设置当前用户为管理员（临时）
if (!current_user_can('manage_options')) {
    wp_set_current_user(1); // 设置为用户ID 1（通常是管理员）
}

// 加载许可证管理功能
require_once(dirname(__FILE__) . '/license-functions.php');

// 设置页面标题
echo '<!DOCTYPE html>';
echo '<html lang="zh-CN">';
echo '<head>';
echo '<meta charset="UTF-8">';
echo '<meta name="viewport" content="width=device-width, initial-scale=1.0">';
echo '<title>蜘蛛监控 - 许可证管理</title>';
echo '<style>
    body { font-family: Arial, sans-serif; margin: 20px; background: #f5f5f5; }
    .container { max-width: 1200px; margin: 0 auto; background: white; padding: 20px; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); }
    .header { background: #0073aa; color: white; padding: 20px; border-radius: 8px 8px 0 0; margin: -20px -20px 20px -20px; }
    .form-group { margin-bottom: 15px; }
    label { display: block; margin-bottom: 5px; font-weight: bold; }
    input, select, textarea { width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 4px; box-sizing: border-box; }
    button { background: #0073aa; color: white; padding: 10px 20px; border: none; border-radius: 4px; cursor: pointer; margin-right: 10px; }
    button:hover { background: #005177; }
    .success { background: #d4edda; color: #155724; padding: 10px; border-radius: 4px; margin-bottom: 15px; }
    .error { background: #f8d7da; color: #721c24; padding: 10px; border-radius: 4px; margin-bottom: 15px; }
    .license-item { border: 1px solid #ddd; margin: 10px 0; padding: 15px; border-radius: 4px; }
    .license-key { font-family: monospace; background: #f8f9fa; padding: 5px; border-radius: 3px; }
    table { width: 100%; border-collapse: collapse; margin-top: 20px; }
    th, td { padding: 12px; text-align: left; border-bottom: 1px solid #ddd; }
    th { background-color: #f8f9fa; font-weight: bold; }
    .lifetime-badge { background: #28a745; color: white; padding: 3px 8px; border-radius: 12px; font-size: 12px; }
    .all-features-badge { background: #17a2b8; color: white; padding: 3px 8px; border-radius: 12px; font-size: 12px; margin-left: 5px; }
</style>';
echo '</head>';
echo '<body>';
echo '<div class="container">';
echo '<div class="header">';
echo '<h1>蜘蛛监控 - 许可证管理</h1>';
echo '<p>一次性永久授权版本</p>';
echo '</div>';

// 处理表单提交
$messages = [];

// 调试信息 - 显示当前请求方法
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    error_log('许可证管理 - POST请求数据: ' . print_r($_POST, true));
}

// 添加许可证
if (isset($_POST['add_license']) && $_SERVER['REQUEST_METHOD'] === 'POST') {
    $license_key = sanitize_text_field($_POST['license_key']);
    $max_domains = intval($_POST['max_domains']);
    
    if (empty($license_key)) {
        $license_key = spider_generate_license_key();
    }
    
    // 获取所有功能
    $all_features = array_keys(spider_get_feature_list());
    
    $result = spider_add_license([
        'license_key' => $license_key,
        'plan' => 'lifetime',
        'expires_at' => date('Y-m-d', strtotime('+100 years')),
        'max_domains' => $max_domains,
        'features' => $all_features
    ]);
    
    if ($result) {
        $messages[] = ['type' => 'success', 'text' => '单域名永久许可证添加成功！密钥：' . $license_key];
    } else {
        $messages[] = ['type' => 'error', 'text' => '添加许可证失败']; 
    }
}

// 删除许可证
if (isset($_POST['delete_license'])) {
    $license_id = intval($_POST['delete_license']);
    $result = spider_delete_license($license_id);
    
    if ($result) {
        $messages[] = ['type' => 'success', 'text' => '许可证删除成功！'];
    } else {
        $messages[] = ['type' => 'error', 'text' => '删除许可证失败'];
    }
}

// 批量生成
if (isset($_POST['batch_generate']) && $_SERVER['REQUEST_METHOD'] === 'POST') {
    $count = isset($_POST['batch_count']) ? intval($_POST['batch_count']) : 5;
    $max_domains = 1; // 强制设置为1个域名
    
    // 获取所有功能
    $all_features = array_keys(spider_get_feature_list());
    $licenses = [];
    
    for ($i = 0; $i < $count; $i++) {
        $license_key = spider_generate_license_key();
        $result = spider_add_license([
            'license_key' => $license_key,
            'plan' => 'single_domain',
            'expires_at' => date('Y-m-d', strtotime('+100 years')),
            'max_domains' => $max_domains,
            'features' => $all_features
        ]);
        
        if ($result) {
            $licenses[] = $license_key;
        }
    }
    
    if (!empty($licenses)) {
        $messages[] = ['type' => 'success', 'text' => '成功生成 ' . count($licenses) . ' 个单域名永久许可证'];
    } else {
        $messages[] = ['type' => 'error', 'text' => '生成许可证失败'];
    }
}

// 显示消息
foreach ($messages as $message) {
    echo '<div class="' . $message['type'] . '">' . $message['text'] . '</div>';
}

// 显示表单
echo '<div class="form-section">';
echo '<h2>添加永久许可证</h2>';
echo '<form method="post" onsubmit="return confirm(\'确认要添加这个许可证吗？\')">';
echo '<div class="form-group">';
echo '<label>许可证密钥（留空自动生成）:</label>';
echo '<input type="text" name="license_key" placeholder="XXXXX-XXXXX-XXXXX-XXXXX-XXXXX">';
echo '</div>';

echo '<div class="form-group">';
echo '<label>每个许可证授权域名数:</label>';
echo '<input type="number" name="max_domains" value="1" min="1" max="1" readonly>';
echo '<small style="color: #666;">⚠️ 当前设置：每个许可证只能授权<strong>1个域名</strong></small>';
echo '</div>';

echo '<div class="form-group">';
echo '<label style="color: #28a745; font-weight: bold;">✓ 授权期限：100年（2124年到期）</label>';
echo '<label style="color: #17a2b8; font-weight: bold;">✓ 包含所有功能权限</label>';
echo '<label style="color: #dc3545; font-weight: bold;">⚠️ 只能激活1个域名</label>';
echo '</div>';

echo '<button type="submit" name="add_license">添加单域名永久许可证</button>';
echo '</form>';
echo '</div>';

// 显示批量生成
echo '<div class="form-section" style="margin-top: 30px;">';
echo '<h2>批量生成永久许可证</h2>';
echo '<form method="post" onsubmit="return confirm(\'确认要批量生成这些许可证吗？\')">';
echo '<div class="form-group">';
echo '<label>生成数量:</label>';
echo '<input type="number" name="batch_count" value="5" min="1" max="100">';
echo '</div>';
echo '<div class="form-group">';
echo '<label>每个许可证授权域名数:</label>';
echo '<input type="number" name="max_domains" value="1" min="1" max="1" readonly>';
echo '<small style="color: #666;">⚠️ 当前设置：每个许可证只能授权<strong>1个域名</strong></small>';
echo '</div>';
echo '<div class="form-group">';
echo '<label style="color: #28a745; font-weight: bold;">✓ 每个许可证都是100年有效期</label>';
echo '<label style="color: #17a2b8; font-weight: bold;">✓ 自动包含所有功能权限</label>';
echo '<label style="color: #dc3545; font-weight: bold;">⚠️ 每个许可证只能激活1个域名</label>';
echo '</div>';
echo '<button type="submit" name="batch_generate">批量生成单域名永久许可证</button>';
echo '</form>';
echo '</div>';

// 显示现有许可证
echo '<div class="form-section" style="margin-top: 30px;">';
echo '<h2>现有许可证列表</h2>';

$licenses = spider_get_all_licenses();
if (empty($licenses)) {
    echo '<p>暂无许可证</p>';
} else {
    echo '<table>';
    echo '<tr><th>ID</th><th>许可证密钥</th><th>到期时间</th><th>最大域名</th><th>功能权限</th><th>状态</th><th>已使用</th><th>操作</th></tr>';
    
    foreach ($licenses as $license) {
        $status = spider_get_license_status($license);
        $days_left = max(0, ceil((strtotime($license['expires_at']) - time()) / 86400));
        $activations = spider_get_license_activations($license['id']);
        $used = !empty($activations);
        
        echo '<tr>';
        echo '<td>' . $license['id'] . '</td>';
        echo '<td class="license-key">' . $license['license_key'] . '</td>';
        echo '<td>' . $license['expires_at'] . '<br><span class="lifetime-badge">' . $days_left . '天</span></td>';
        echo '<td>' . $license['max_domains'] . '</td>';
        echo '<td><span class="all-features-badge">全功能</span></td>';
        echo '<td>' . spider_get_status_text($status) . '</td>';
        echo '<td>';
        if ($used) {
            echo '<span style="background:#e6ffed; color:#0a7f2e; padding:2px 6px; border-radius:3px; font-size:12px; border:1px solid #34c759;">已使用</span>';
        } else {
            echo '<span style="background:#fff7ed; color:#92400e; padding:2px 6px; border-radius:3px; font-size:12px; border:1px solid #f59e0b;">未使用</span>';
        }
        echo '</td>';
        echo '<td>';
        echo '<form method="post" style="display: inline;">';
        echo '<input type="hidden" name="delete_license" value="' . $license['id'] . '">';
        echo '<button type="submit" onclick="return confirm(\'确定删除？\')">删除</button>';
        echo '</form>';
        echo '</td>';
        echo '</tr>';
    }
    echo '</table>';
}
echo '</div>';

echo '</div>';
echo '</body>';
echo '</html>';